//处理业务逻辑的中间件，读取某个json数据 响应前端 第三层 
//处理业务逻辑的中间件，读取某个json数据 响应前端
const path = require('path') // 引入path模块
const fileUtils = require('../utils/file_utils')
module.exports = async(ctx, next) => {
    const url = ctx.request.url // /api/seller    ../data/seller.json
    let filepath = url.replace('/api', '') // 将路径中的/api去掉为/seller
    filepath = '../data' + filepath + '.json' // ../data/seller.json
    filepath = path.join(__dirname, filepath) 
    try {
        const ret = await fileUtils.getFileJsonData(filepath);
        ctx.response.body = ret;
    } catch (error) {
        const errorMsg = {
                message: '读取失败，路径不存在',
                status: 404
            }
            //设置响应体
        ctx.response.body = JSON.stringify(errorMsg)
    }
    // const ret = await fileUtils.getFileJsonData(filePath)
    // ctx.response.body = ret
    console.log(url);
    await next()
}


// //处理业务逻辑的中间件，读取某个json数据 响应前端
// const path = require('path') // 引入path模块
// const fileUtils = require('../utils/file_utils') // 引入utils方法
// module.exports = async(ctx, next) => {
//     //根据URL
//     // 例如获取到的前端路径为/api/seller 真正要访问的是后端文件../data/seller.json
//     const url = ctx.request.url // /api/seller    ../data/seller.json
//     let filepath = url.replace('/api', '') // 将路径中的/api去掉为/seller
//     filepath = '../data' + filepath + '.json' // ../data/seller.json
//     // 将完整的绝对路径 与../data/seller.json进行拼接得到完整的后端路径
//     filepath = path.join(__dirname, filepath) 
//     try {
//         // 返回来的是一个promise对象 故需要用async与await联用获取promise里面的数据
//         const ret = await fileUtils.getFileJsonData(filepath);
//         ctx.response.body = ret;
//     } catch (error) {
//         const errorMsg = {
//                 message: '读取失败，路径不存在',
//                 status: 404
//             }
//             //设置响应体
//         ctx.response.body = JSON.stringify(errorMsg)
//     }
//     // const ret = await fileUtils.getFileJsonData(filePath)
//     // ctx.response.body = ret
//     console.log(url);
//     await next()
// }